package cn.fl.ref.fnovercollinfo.transform;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import fl.ref.fnovercollinfo.dto.FncOverCollInfoDTO;
import cn.fl.ref.fnovercollinfo.vo.FncOverCollInfoVO;

/**
 * 服务层与展现层转换类
 * 所有的PO只能在持久成和服务层使用
 * 所有的DTO只能在展现层和服务层使用
 * 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class FncOverCollInfoVOTransform {

	/**
	 * VO 转  DTO
	 * @param po
	 * @return
	 */
	public static FncOverCollInfoDTO toDTO(FncOverCollInfoVO vo) {
		FncOverCollInfoDTO  dto = null;
		if (vo != null) { 
			dto = new FncOverCollInfoDTO();
			dto.setId(vo.getId());
			
            dto.setPrjId(vo.getPrjId());  
   
            dto.setPayId(vo.getPayId());  
   
            dto.setPayPd(vo.getPayPd());  
   
            dto.setTransTm(vo.getTransTm());  
   
            dto.setTransSt(vo.getTransSt());  
   
            dto.setTransAm(vo.getTransAm());  
            dto.setTransAccNoReturn(vo.getTransAccNoReturn());  
            dto.setTransBank(vo.getTransBank());  
   
            dto.setTransAcc(vo.getTransAcc());  
            /**
            融资机构编号
            **/
             dto.setFncInsId(vo.getFncInsId());

             dto.setFncScmId(vo.getFncScmId());//方案编号
             dto.setFncPrjNm(vo.getFncPrjNm());//项目名称
             dto.setPaidUpAmt(vo.getPaidUpAmt());//已销金额
             dto.setGthrDt(vo.getGthrDt());//归集日期
             dto.setPayDt(vo.getPayDt());//应付日期
             dto.setMdfTm(vo.getMdfTm());//修改日期/应付日期
             dto.setFncInsNm(vo.getFncInsNm());
             dto.setFncScmNm(vo.getFncScmNm());
             dto.setFncPrjId(vo.getFncPrjId());
             dto.setSurplusMoney(vo.getSurplusMoney());
             dto.setReReturnTm(vo.getReReturnTm());
             dto.setAccNo(vo.getAccNo());
             dto.setPayAccountId(vo.getPayAccountId());
             
             dto.setHisTransAm(vo.getHisTransAm()); //历史退回金额
             dto.setHisTransAccNoReturn(vo.getHisTransAccNoReturn()); //历史不可退回金额
             
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto
	 * @return
	 */
	public static FncOverCollInfoVO toVO(FncOverCollInfoDTO dto) {
		FncOverCollInfoVO vo = null;
		if (dto != null) {
			vo = new FncOverCollInfoVO();
			vo.setId(dto.getId());
            vo.setPrjId(dto.getPrjId());  
   
            vo.setPayId(dto.getPayId());  
   
            vo.setPayPd(dto.getPayPd());  
   
            vo.setTransTm(dto.getTransTm());  
   
            vo.setTransSt(dto.getTransSt());  
   
            vo.setTransAm(dto.getTransAm());  
   
            vo.setTransBank(dto.getTransBank());  
   
            vo.setTransAcc(dto.getTransAcc());  
            
            vo.setTransAccNoReturn(dto.getTransAccNoReturn());  
            
            /**
            融资机构编号
            **/
             vo.setFncInsId(dto.getFncInsId());

             vo.setFncScmId(dto.getFncScmId());//方案编号
             vo.setFncPrjNm(dto.getFncPrjNm());//项目名称
             vo.setPaidUpAmt(dto.getPaidUpAmt());//已销金额
             vo.setGthrDt(dto.getGthrDt());//归集日期
             vo.setPayDt(dto.getPayDt());//应付日期
             vo.setMdfTm(dto.getMdfTm());//修改日期/应付日期
             vo.setFncInsNm(dto.getFncInsNm());
             vo.setFncScmNm(dto.getFncScmNm());
             vo.setFncPrjId(dto.getFncPrjId());
             vo.setSurplusMoney(dto.getSurplusMoney());
             vo.setFoSt(dto.getFoSt());
             vo.setReReturnTm(dto.getReReturnTm());
             vo.setAccNo(dto.getAccNo());
             vo.setActPymtAmt(dto.getActPymtAmt());
             vo.setPayAccountId(dto.getPayAccountId());
             
             vo.setHisTransAm(dto.getHisTransAm()); //历史退回金额
             vo.setHisTransAccNoReturn(dto.getHisTransAccNoReturn()); //历史不可退回金额
		}
		return vo;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list
	 * @return
	 */
	public static List<FncOverCollInfoDTO> toDTOList(List<FncOverCollInfoVO> list) {
		List<FncOverCollInfoDTO>  voList = new ArrayList<FncOverCollInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FncOverCollInfoVO vo : list) {
				voList.add(toDTO(vo));
			}
		}
		return voList;
	}
	
	/**
	 * DTO集合 转 PO集合
	 * @param list
	 * @return
	 */
	public static List<FncOverCollInfoVO> toVOList(List<FncOverCollInfoDTO> list) {
		List<FncOverCollInfoVO>  voList = new ArrayList<FncOverCollInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FncOverCollInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
}
